package etc

import (
	"errors"
	"fmt"
	"github.com/spf13/viper"
)

var Config *SystemConfig

type SystemConfig struct {
	Mode string `json:"mode"` //运行模式  debug/prod

	//服务端口号
	Port string `json:"port"`

	//数据库URL
	MySqlURL string `json:"mysqlUrl"`

	//短信签名
	SecretId string `json:"secretId"`

	//短信秘钥
	SecretKey string `json:"secretKey"`

	//kafka 地址
	KafkaUrl string `json:"kafkaUrl"`
}

// LoadConfig 根据文件路径载入配置文件
func LoadConfig(path string) {
	viper.SetConfigFile(path) // 指定配置文件路径
	if err := viper.ReadInConfig(); err != nil {
		var configFileNotFoundError viper.ConfigFileNotFoundError
		if errors.As(err, &configFileNotFoundError) {
			// 配置文件未找到错误；如果需要可以忽略
			panic(fmt.Errorf("Not Find config file: %v \n", err))
		}
	}
	err := viper.Unmarshal(&Config)
	fmt.Println(Config)
	if err != nil {
		panic(err)
	}
}
